#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# @Time: 2024-02-21 00:36

# @Despcription: 字典的定义及使用

if(0):
    # 字典的键必须是不能变更的数据类型
    # 向字典中不存在的键赋值， 则新增键值对
    # 读取字典中不存在的键， 报错 KeyError

    # 字典构造方式一，直接初始化
    var_dict = {"k-a": "v-a", (1, 2): "v-b", 3:"k-c"}
    print(var_dict)     # {'k-a': 'v-a', (1, 2): 'v-b', 3: 'k-c'}
    # 字典构造方式二， 使用dict()函数， 传键值对列表
    var_dict = dict([("k-a", "v-a"), (1, 2), "v-b", 3, "k-c"])
    print(var_dict)

    # 修改值
    var_dict["k-a"] = 100
    print(var_dict)     # {'k-a': 100, (1, 2): 'v-b', 3: 'k-c'}
    # 删除值
    del var_dict[(1, 2)]
    print(var_dict)     # {'k-a': 100, 3: 'k-c'}
    # 新增值
    var_dict["k-d"] = 200
    print(var_dict)     # {'k-a': 100, 3: 'k-c', 'k-d': 200}

if(0):
    # list(dict) 会列出字典中所有的键
    var_dict = {'k-c': 100, 'k-b': 200, 'k-a': 300}
    print(list(var_dict))   # ['k-a', 'k-b', 'k-c']

if(1):
    # 遍历字典方式一, 使用dice.items()方法
    var_dict = {'k-c': 100, 'k-b': 200, 'k-a': 300, (1, 2): 400, 4: 500}
    for key, value in var_dict.items():
        print("key: {}, value: {}".format(key, value))

    # 遍历字典方式二， 使用enumerate关键字
    for idx, key in enumerate(var_dict):
        print("index: {}, key: {}, value:{}".format(idx, key, var_dict[key]))
